Fix last() and update test
authorJeroen van der Heijden <jeroen@transceptor.technology>
Thu, 17 May 2018 09:46:24 +0000 (11:46 +0200)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Thu, 17 May 2018 09:46:24 +0000 (11:46 +0200)
src/siri/db/series.c
test/test_select.py

index 6620217ebededa52dcb03592809d5062eae0e15a..4d21f0f1f05cf3263a1eeedc4fd92253626486bc 100644 (file)
@@ -867,8 +867,8 @@ siridb_points_t * siridb_series_get_last(
         }
 
         /* string type does not have a buffer so we don't have to worry */
-        points->data->ts = buf->data->ts;
-        points->data->val = buf->data->val;
+        points->data->ts = point->ts;
+        points->data->val = point->val;
         points->len = 1;
         return points;
     }
index 9d64a2f0d31aa3e01755b968f92832fe33c7f269..625ffe1626acd0ed4bd519acbf8e4120a708071a 100644 (file)
@@ -309,6 +309,25 @@ class TestSelect(TestBase):
 
         await self.client0.query('select derivative() from "equal ts"')
 
+        self.assertEqual(
+            await self.client0.query('select first() from *'),
+            {k: [v[0]] for k, v in DATA.items()})
+
+        self.assertEqual(
+            await self.client0.query('select last() from *'),
+            {k: [v[-1]] for k, v in DATA.items()})
+
+        self.assertEqual(
+            await self.client0.query('select count() from *'),
+            {k: [[v[-1][0], len(v)]] for k, v in DATA.items()})
+
+        print(sum([x[1] for x in DATA['aggr']]) / len(DATA['aggr']))
+        self.assertEqual(
+            await self.client0.query('select mean() from "aggr"'),
+            {'aggr': [[
+                DATA['aggr'][-1][0],
+                sum([x[1] for x in DATA['aggr']]) / len(DATA['aggr'])]]})
+
         # test prefix, suffex
         result = await self.client0.query(
                 'select sum(1d) prefix "sum-" suffix "-sum", '